Skip to content

Use Blacksmith checkout with sticky-disk git mirror in Elixir CI - #6564

Merged
cnkk merged 1 commit into
masterfrom
ci/blacksmith-checkout
Aug 4, 2026
Merged

Use Blacksmith checkout with sticky-disk git mirror in Elixir CI#6564
cnkk merged 1 commit into
masterfrom
ci/blacksmith-checkout

Conversation

@cnkk

@cnkk cnkk commented Jul 31, 2026

Copy link
Copy Markdown
Member

useblacksmith/checkout is a drop-in fork of actions/checkout that keeps a git mirror on a Blacksmith sticky disk, so subsequent runs only fetch deltas instead of the full history each time.

Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
@cnkk
cnkk enabled auto-merge July 31, 2026 09:01

@apata apata left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this make us run credo diff with stale master? Approving and let's see

@cnkk
cnkk added this pull request to the merge queue Aug 4, 2026
Merged via the queue into master with commit fd528f2 Aug 4, 2026
22 checks passed
@cnkk
cnkk deleted the ci/blacksmith-checkout branch August 4, 2026 07:38
pull Bot pushed a commit to foreverLoveWisdom/analytics that referenced this pull request Aug 4, 2026
…t time) (plausible#6571)

* Revert "Use Blacksmith checkout with sticky-disk git mirror in Elixir CI (plausible#6564)"

This reverts commit fd528f2.

* Fix inert service container health checks in Elixir CI

The postgres and clickhouse health-check options were nested under env,
so Docker never received a health check and jobs could start before
ClickHouse was listening, failing ecto.create with
Mint.TransportError{reason: :closed}. Move options to the service level
and point the ClickHouse check at the real HTTP port (8123 /ping)
instead of the unused 8124.

Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>

* Give ClickHouse a 2m health-check start period

ClickHouse on these runners can take over 50s to start listening
during load spikes (the same slowness behind the Aug 3+ ecto.create
failures). Without a start period the health check flips to unhealthy
after ~50s and the runner kills the job before the server is ready;
probe failures during the start period no longer count toward
--health-retries.

Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>

* Probe ClickHouse health check via 127.0.0.1, not localhost

The server fails to bind [::] in these containers (IPv6 disabled) and
falls back to 0.0.0.0 only, while busybox wget resolves localhost to
::1 and does not retry the next address, so the probe got connection
refused forever and every service init failed. Reproduced against
clickhouse/clickhouse-server:25.11.5.8-alpine: localhost fails,
127.0.0.1 succeeds and the container reports healthy within seconds.

Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>

---------

Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
RobertJoonas pushed a commit that referenced this pull request Aug 4, 2026
Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
RobertJoonas pushed a commit that referenced this pull request Aug 4, 2026
…t time) (#6571)

* Revert "Use Blacksmith checkout with sticky-disk git mirror in Elixir CI (#6564)"

This reverts commit fd528f2.

* Fix inert service container health checks in Elixir CI

The postgres and clickhouse health-check options were nested under env,
so Docker never received a health check and jobs could start before
ClickHouse was listening, failing ecto.create with
Mint.TransportError{reason: :closed}. Move options to the service level
and point the ClickHouse check at the real HTTP port (8123 /ping)
instead of the unused 8124.

Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>

* Give ClickHouse a 2m health-check start period

ClickHouse on these runners can take over 50s to start listening
during load spikes (the same slowness behind the Aug 3+ ecto.create
failures). Without a start period the health check flips to unhealthy
after ~50s and the runner kills the job before the server is ready;
probe failures during the start period no longer count toward
--health-retries.

Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>

* Probe ClickHouse health check via 127.0.0.1, not localhost

The server fails to bind [::] in these containers (IPv6 disabled) and
falls back to 0.0.0.0 only, while busybox wget resolves localhost to
::1 and does not retry the next address, so the probe got connection
refused forever and every service init failed. Reproduced against
clickhouse/clickhouse-server:25.11.5.8-alpine: localhost fails,
127.0.0.1 succeeds and the container reports healthy within seconds.

Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>

---------

Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
pull Bot pushed a commit to amishakov/analytics that referenced this pull request Aug 4, 2026
* make verification work in a banner

* move custom url input into the banner

* improve notice styles

* expandable instructions

* stop polling pageviews

* rely on tracker_script_config object for installation_method

* proper dismiss logic

* [revert me] debugging UI scenarios

* rename verification (component) to verification_banner

* Refine verification banner UI and copy (plausible#6525)

* Refine verification banner UI and copy

- Simplify failure CTAs: keep "Check again" as primary, add ghost
  "Review installation" (or "Try another URL" when a custom URL retry
  is offered); remove installation-guide, change-method, and view-snippet
  expandable logic
- Render inline "verify your installation manually" / "review your
  installation" links inside recommendation text (offer_custom_url_input
  scenarios) via safe HTML helpers, avoiding HEEx whitespace pitfalls
- Tighten diagnostics title and body copy
- Move the "Setup pending" pill in the sites list to replace the
  percentage indicator; use the generic pill component
- Extend the notice component with title_class override and a spinner
  slot; swap success icon to solid check-circle

* improve templating logic

---------

Co-authored-by: Robert Joonas <robertjoonas16@gmail.com>

* emails CTA banner

* revert changes committed for debugging

* fix test after rebase

* fix CE tests

* improve stats_controller_test.exs

* E2E: named verification results + add genserver for mock scenarios

* E2E: checks_mock module

* E2E: plug in the ChecksMock module

* E2E: put_verification_scenario endpoint

* e2e test for verification success

* get CI green

* migration: add onboarding_status

* update site schema with the new field

* advance status to verification_succeeded

* fix setup pending pill condition (/sites page)

* further guard verification banner rendering in provisioning flow

* fix verification re-triggering on refresh (review/domain_change)

* add launch_delay option to MockScenarios

* fix site switcher links + more e2e test coverage

* new logic for email reports CTA

* fix verification banner dismiss button showing through the dashboard options menu

* validate named result exists in MockScenarios.put

* move ChecksMock and MockScenarios into a single file, use :ets

* move checks_mock.ex to test/support

* different success message depending on the flow

* fixup: make sure component goes into loading state instantly after clicking retry

* stats_start_date -> ensure_stats_start_date

...and return the whole site struct. StatsController.stats action needs
the whole site returned to known the "just updated" onboarding status
when rendering the dashboard stats.html.

* advance onboarding status from /sites page too

* push_navigate -> redirect

* changelog + change dashboard link text for CE on installation screen

* credo and remove redundant else clause

* fix installation_test (CE)

* fix E2E test

* remove runtime Mix.env call

* do not persist verification params in browser history

* Add workaround for CH query condition cache bug (plausible#6562)

* Use Blacksmith checkout with sticky-disk git mirror in Elixir CI (plausible#6564)

Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>

* Revert to actions/checkout in Elixir CI (git mirror regressed checkout time) (plausible#6571)

* Revert "Use Blacksmith checkout with sticky-disk git mirror in Elixir CI (plausible#6564)"

This reverts commit fd528f2.

* Fix inert service container health checks in Elixir CI

The postgres and clickhouse health-check options were nested under env,
so Docker never received a health check and jobs could start before
ClickHouse was listening, failing ecto.create with
Mint.TransportError{reason: :closed}. Move options to the service level
and point the ClickHouse check at the real HTTP port (8123 /ping)
instead of the unused 8124.

Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>

* Give ClickHouse a 2m health-check start period

ClickHouse on these runners can take over 50s to start listening
during load spikes (the same slowness behind the Aug 3+ ecto.create
failures). Without a start period the health check flips to unhealthy
after ~50s and the runner kills the job before the server is ready;
probe failures during the start period no longer count toward
--health-retries.

Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>

* Probe ClickHouse health check via 127.0.0.1, not localhost

The server fails to bind [::] in these containers (IPv6 disabled) and
falls back to 0.0.0.0 only, while busybox wget resolves localhost to
::1 and does not retry the next address, so the probe got connection
refused forever and every service init failed. Reproduced against
clickhouse/clickhouse-server:25.11.5.8-alpine: localhost fails,
127.0.0.1 succeeds and the container reports healthy within seconds.

Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>

---------

Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>

* fight with latency (Try another URL button)

* fight latency (clicking Check again)

Adjust the global btn-base styling to make the button appear "disabled",
when phx-click-loading is set on it.

* nom format e2e

---------

Co-authored-by: Sanne de Vries <65487235+sanne-san@users.noreply.github.com>
Co-authored-by: Artur Pata <artur.pata@gmail.com>
Co-authored-by: Cenk Kücük <cenk@plausible.io>
Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants